home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.004 / xemacs-1 / xemacs-19.13 / src / gdbinit < prev    next >
Encoding:
Text File  |  1995-06-08  |  3.4 KB  |  214 lines

  1. # some useful commands for debugging emacs with gdb 4.* or better
  2.  
  3. set print union off
  4. set print pretty off
  5.  
  6. define temacs
  7. run -batch -l loadup.el run-temacs -q
  8. end
  9.  
  10. echo \n>>> Use the `temacs' command to run temacs\n\n
  11.  
  12. # if you use Purify, do this:
  13. # set env PURIFYOPTIONS -pointer-mask=0x0fffffff
  14.  
  15. # was frob, but p1 is short for prin1
  16. define p1
  17. #call = Fprin1 ($tem, Qexternal_debugging_output)
  18. # compensate for GDB struct-passing bug
  19. set debug_temp = $
  20. call debug_print (&debug_temp)
  21. printf "\n"
  22. end
  23.  
  24. define lbt
  25. # "&" to compensate for GDB struct-passing bug
  26. call Fbacktrace (&Qexternal_debugging_output, &Qt)
  27. end
  28.  
  29.  
  30. set $vector_length_mask = ~(1<<31)
  31.  
  32. define xtype
  33. # this is really xgctype, as we mask off the mark bit
  34. output (enum Lisp_Type) ($.gu.type)
  35. echo \n
  36. end
  37.  
  38. define xint
  39. # it would be nice to sign-extend this...
  40. print (int)$.s.val
  41. end
  42.  
  43. define xmarkbit
  44. print $.gu.markbit
  45. end
  46.  
  47. define xrecord
  48. print (struct lrecord_header *) $.gu.val
  49. output *($->implementation)
  50. echo \n
  51. end
  52.  
  53. define xcons
  54. print (struct Lisp_Cons *) $.gu.val
  55. end
  56.  
  57. define xbuffer
  58. print (struct buffer *) $.gu.val
  59. end
  60.  
  61. define xglyph
  62. print (struct Lisp_Glyph *) $.gu.val
  63. end
  64.  
  65. define xspec
  66. print (struct Lisp_Specifier *) $.gu.val
  67. end
  68.  
  69. define xvector
  70. print (struct Lisp_Vector *) $.gu.val
  71. end
  72.  
  73. define xsubr
  74. print (struct Lisp_Subr *) $.gu.val
  75. end
  76.  
  77. define xstring
  78. print (struct Lisp_String *) $.gu.val
  79. output (char *) $->_data
  80. echo \n
  81. end
  82.  
  83. define nilp
  84. print $ == Qnil
  85. end
  86.  
  87. define xmarker
  88. print (struct Lisp_Marker *) $.gu.val
  89. end
  90.  
  91. define xwindow
  92. print (struct window *) $.gu.val
  93. end
  94.  
  95. define xprocess
  96. print (struct Lisp_Process *) $.gu.val
  97. end
  98.  
  99. define xevent
  100. print (struct Lisp_Event *) $.gu.val
  101. end
  102.  
  103. define xkeymap
  104. print (struct keymap *) $.gu.val
  105. end
  106.  
  107. define xframe
  108. print (struct frame *) $.gu.val
  109. end
  110.  
  111. define xbytecode
  112. print (struct Lisp_Bytecode *) $.gu.val
  113. end
  114.  
  115. define xextent
  116. print (struct extent *) $.gu.val
  117. end
  118.  
  119. define xhashtable
  120. print (struct hashtable_struct *) $.gu.val
  121. end
  122.  
  123. define xpixmap
  124. print (struct Lisp_Pixmap *) $.gu.val
  125. end
  126.  
  127. define xfont
  128. print (struct Lisp_Font *) $.gu.val
  129. end
  130.  
  131. define car
  132. set $tem = ((struct Lisp_Cons *) $.gu.val)->car
  133. end
  134.  
  135. define cdr
  136. set $tem = ((struct Lisp_Cons *) $.gu.val)->cdr
  137. end
  138.  
  139. define string-length
  140. print ((struct Lisp_String *) $.gu.val)->_size & $vector_length_mask
  141. end
  142.  
  143. define string-contents
  144. print (char *) ((struct Lisp_String *) $.gu.val)->_data
  145. end
  146.  
  147. define vector-length
  148. print ((struct Lisp_Vector *) $.gu.val)->size & $vector_length_mask
  149. end
  150.  
  151. define vector-contents
  152. set $tem = (struct Lisp_Vector *) $.gu.val
  153. print *($tem->contents) @ ($tem->size & $vector_length_mask)
  154. set $ = $tem->contents
  155. end
  156.  
  157. define symbol-name
  158. set $tem = ((struct Lisp_Symbol *) $.gu.val)->name
  159. # output *($tem->_data) @ ($tem->_size & $vector_length_mask)
  160. output ($tem->_data) 
  161. echo \n
  162. set $type = Lisp_String
  163. echo \n
  164. end
  165.  
  166. define xsymbol
  167. symbol-name
  168. end
  169.  
  170. define symbol-value
  171. set $tem = ((struct Lisp_Symbol *) $.gu.val)->value
  172. end
  173.  
  174. define symbol-function
  175. set $tem = ((struct Lisp_Symbol *) $.gu.val)->function
  176. end
  177.  
  178. define symbol-plist
  179. set $tem = ((struct Lisp_Symbol *) $.gu.val)->plist
  180. end
  181.  
  182. define wtype
  183. p $->core.widget_class->core_class.class_name
  184. end
  185.  
  186. define xtname
  187. print XrmQuarkToString(((Object)($))->object.xrm_name)
  188. end
  189.  
  190. # GDB, with the losing command-line parser that it has,
  191. # cannot handle nested blocks.
  192. define breaks
  193.  
  194. br Fsignal
  195. # command
  196. # bt 3
  197. # p sig
  198. # xsymbol
  199. # end
  200.  
  201. br Fkill_emacs
  202. # command
  203. # bt 3
  204. # end
  205.  
  206. br assertion_failed
  207. # command
  208. # bt 3
  209. # end
  210.  
  211. end
  212.